package com.jumei.flume.parser;

import org.joda.time.DateTime;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 抽象的SubParser，封装了注册到LogLineParser的机制，同时提供共用的解析日志创建时间的方法。
 */
public abstract class AbstractLogLineSubParser implements LogLineSubParser {
    protected Logger logger = LoggerFactory.getLogger(this.getClass());
    protected LogLineParser parentParser;

    @Override
    public void register(LogLineParser parentParser) {
        this.parentParser = parentParser;
    }

    /**
     * 获取日志的创建时间，缺省使用parentLogLineParser的解析方式。
     * 如解析方式不一致，则请自行重载实现
     *
     * @param line
     * @param splitedValues
     * @return
     */
    @Override
    public DateTime parseCreateTime(String line, String[] splitedValues) {
        return parentParser.parseCreateTime(line, splitedValues);
    }

}
